查看原文
其他

如何利用开源工具收集美国关键基础设施情报?(超详说明)

Wojciech 代码卫士 2022-05-23
 聚焦源代码安全,网罗国内外最新资讯!
编译:奇安信代码卫士团队

本报告研究的是工业控制系统 (ICS) 作者 Wojciech 说明了如何通过开源情报对关键基础设施实施侦察。很多时候,可以从具体的建筑物如发电厂、废水池或化学和制造设施入手开展研究。本研究由美国被暴露的2.6万台设备组成。


奇安信代码卫士团队现将报告翻译如下,供各位参考:

 

开源情报 (OSINT)

开源情报(OSINT) 是个较为宽泛的领域,很多人都在不知不觉的情况下使用它。你所阅读的或观看的影响你的看法,而基于所收集的信息你坚持己见并作出自己的决策和判断。这些信息的来源可能是传统的大众媒体如电视、收音机或报纸或互联网及其所含信息如网站、社交媒体或博客。
另外,OSINT用于开展多项调查如地理定位照片或追踪特定个体的行踪。它还夹杂着其它情报技术如人工智能 (HUMINT)、地理空间智能 (GEOINT) 或网络智能 (CYBINT)。根据照片或威胁行动者遗留的微小线索,人们就能够收集很多信息,将它们拼凑成完整的图像,进而得出最终结论。
另外,OSINT有助于网络犯罪防范组织追踪犯罪分子的行踪,有利于情报机构获取关于对手的能力信息,在真实世界和网络世界中均是如此。了解了乌克兰、伊朗和沙特阿拉伯发生的事件后,我们应该意识到国家关键基础设施可能遭受的损害。如遇冲突,直接暴露在互联网上的设备可能被黑并以多种方式引发损害。
美国中情局(CIA) 强调的五大主要OSINT 领域包括:
  • 互联网——在本研究中我使用了很多 Web 信息。我获取了直接联网并暴露于互联网的工控设备。

  • 传统的大众媒体

  • 照片——多数源自社交媒体服务以及其它来源如谷歌街景,本研究也使用了谷歌街景。

  • 会议——人们分享简介和信息的地方,它也同时包含专业记者和智库的研究成果。

  • 地理空间信息——包含地图和商业图像产品,包括检查地理位置并追踪可能和设备之间存在关联的最近建筑物。


而我在本研究中使用 OSINT 来可视化并收集美国所暴露的约2.6万台 ICS 设备的地理位置信息和技术信息。


关键基础设施

我们很难界定哪些是关键基础设施哪些不是。通常而言,构成社会和国民经济主要部分的且它们的破坏或功能丧失会影响国家安全、医疗、能源或水利行业的行业和资产都属于关键基础设施。因此,负责运营美国国土安全局 (DHS) 所罗列的16个行业的每个建筑物和财产必须以关键基础设施对待而且应该实现适当的安全控制和机制。
为了更好地理解这一概念,举个例子:商场附近的停车场可以使用工控设备但它并非关键基础设施;与之相反,任何发电厂(如被黑或遭攻陷可能导致个人和企业无法使用能源)就被视作关键基础设施。
DHS 提到的16个关键基础设施行业包括:
  • 化学制品——包括化学设施、制药或特殊/农业化学制品;
  • 商业设施——聚集大规模人群的场所如体育场、购物中心、赌场、游乐园、动物园或酒店;
  • 通信——它提供其它关键基础设施的连接,并包括无线、地面和卫星传输;
  • 运输——它负责以各种方式将大量的人或货物运输到不同的地方。例如铁路或机场;
  • 制造业——涉及不同行业的制造业:初级金属、机械、电气设备和运输设备。制造业的作用是确保经济繁荣和国家的连续性;
  • 大坝——防止洪水泛滥,并提供蓄水和控制服务;
  • 国防工业基地——每个负责生产、设计或交付军事武器的设施都被视为关键基础设施。此外,提供研发的行业,如政府承包商也在这一领域。它是国防上最重要的部门之一,因为没有它,就不可能动员、部署和维持军事行动;
  • 应急——该行业构成社会生活的核心,包括执法和消防部门、公共工程和医疗急救服务。它还提供其它服务如特警队、搜救队、融合中心、犬科和911呼叫中心;
  • 能源——为城市和企业提供电力。没有稳定的能源供应,其它的关键基础设施也可能处于危险之中。它也是所有人日常活动的必需品;
  • 金融——保险公司、存托机构和融资组织;
  • 粮食和农业——高度依赖于能源、化学、废物和运输领域,包括农场、饭店和食品制造业;
  • 政府设施——国家所有或出租的建筑物。该行业最关键的设施是军事设施、国家实验室、法院或使馆。此外,它还包括网络元素,例如访问控制系统和闭路电视系统。它还设有一个教育设施分部门,涵盖学校和高等教育机构。负责保护存储设施和投票站等资产的选举基础设施也是政府设施行业的一个子部分。
  • 医疗保健和公共卫生——保护其它行业免受自然/人为灾难或传染病的侵害;
  • 信息技术——主要侧重于提供硬件、软件和信息技术,并与通信部门一起提供互联网;
  • 核反应堆、材料和废物——包括动力堆、研究和测试反应堆或核燃料循环设施;
  • 水和废水系统——确保饮用水和废水处理的供应。

 

开源情报和关键基础设施

了解了开源情报的基础和关键基础设施行业之后,我们可以结合二者获取某个国家的关键资产情报。它对于理解对手网络的潜力和弱点发挥着重要作用,也是发动所有网络攻击的首要步骤。
关键基础设施的开源情报多数供情报服务用于在战争时期从事间谍活动以及实施潜在的破坏活动,或者只是用于展示自身的网络实力。犯罪组织也对攻陷某个国家的关键行业感兴趣,但多数是为了获取金钱收益——他们使用开源情报实施侦察,目的是开发并出售 ICS 恶意软件或交易被盗凭证。可能攻击关键 ICS 设备并使用开源情报的群体是恐怖分子,他们的目的是削弱国家经济、挫败公众士气并威胁国家安全。我将内部人员也算在这一群体内,因为他们具备已部署基础设施的大量知识,他们可能不具备所有一切关键基础设施的访问权限,但了解用于关键基础设施例如发电厂的网络和技术。
我们可以从开源数据收集很多某些关键基础设施建筑物的信息,比如某个建筑物或城市的准确的地理位置信息等。这样我们就能从物理监控、社交媒体照片、谷歌地图或街景中收集更多的信息。
查找关键基础设施某个元素的漏洞或入口点,我们不应该忘记其中的工作人员。适当的侦查允许雇佣内部人员、安插自己的卧底,不过鱼叉式钓鱼活动也起着重要作用。
值得注意的是,开源情报是在目标不知道自己正在被调查的情况下被动地收集数据。如果你具备设备的如下技术详情,那么主动侦查的大门已经敞开:
  • IP地址/主机名——用于扫描附近的资产或不常用端口;

  • 技术——借此找到或研究某个特定系统的漏洞。例如,如果知道目标多数时间使用 Niagara Fox,那么我们就不需要花费太多时间查找 Codesys 产品的新利用;

  • 端口——设备的其它开放端口可能为攻击者提供了一个入口点。过时和易受攻击的 Apache 服务器可用于深入网络;

  • 设备响应——它提供了所运行设备的很多有用且详细的信息。它还极大地有利于建立运营设备所在建筑物的真实地址。在安装过程中,技术人员通常会说明街道的名称、建筑物、确切的地址位置、电话号码或其它敏感信息


BACnet 设备的示例字段:
  • Vendor ID

  • Vendor Number

  • Object Identifier

  • Firmware Revision

  • Application Software Revision

  • Object Name

  • Model Name

  • Description

  • Location

  • Broadcast Distribution Table (BDT)

  • Foreign Device Table (FDT)

Niagara Fox 的字段示例:
  • Fox Version

  • Hostname

  • Host Address

  • Application Name

  • Application Version

  • Station Name

  • VM Name

  • VM Version

  • OS Name

  • Time Zone

  • Host ID

  • VM UUID

  • Brand I


Niagara Fox 设备的真实响应示例:

fox a 0 -1 foxhello\n{\nfox.version=s:1.0.1\nid=i:255149\nhostName=s:192.168.1.11\nhostAddress=s:192.168.1.11\napp.name=s:Station\napp.version=s:3.8.311\nvm.name=s:JavaHotSpot(TM) Embedded ClientVM\nvm.version=s:25.141-b06\nos.name=s:QNX\nos.version=s:6.5.0\nstation.name=s:Guadelupe_Jail\nlang=s:en\ntimeZone=s:America/Chicago;-21600000;3600000;02:00:00.000,wall,march,8,onor after,sunday,undefined;02:00:00.000,wall,november,1,on orafter,sunday,undefined\nhostId=s:Qnx-JVLN-000005A17B93\nvmUuid=s:11e98b97-b656–1c50–0000–00000000bafd\nbrandId=s:vykon\nsysInfo=o:bog61[<bog version=”1.0″>\n<p m=”b=baja” t=”b:Facets” v=””/>\n</bog>\n]\nauthAgentTypeSpecs=s:fox:FoxUsernamePasswordAuthAgent\n};;\nfoxa 1 -1 fox rejected\n{\n};;\n


 

收集数据

如上所述,本研究仅基于以被动方式收集的数据。我是用了两种服务,分别是 Shodan 和 BinaryEdge,它们都允许用户查找互联网上的联网设备,其中包括 ICS 设备。另外它们提供过滤功能,从而可以发现自己感兴趣的内容或者将搜索的范围缩小到某个具体的国家、产品或版本。
和 Shodan 不同,BinaryEdge 提供现成可用的查询,以便我们过滤所有可能的 ICS 设备,但它不支持地理位置信息。为了使用这一解决方案,我们需要拥有他们自己的 IP 地址位置信息数据库并借此收集 IP 地址。虽然免费的数据库并不十分准确但最好的是 Maxmind。而Shodan 直接从 API 提供设备的地理位置数据且无需进行更多检查。然而,要使用标记并列出所有的 ICS 设备(如 BinaryEdge 那样),我们需要具有“企业级”访问权限,但这种权限花费较高。
所搜索的设备和我之前的研究工作是一致的:
  • Modbus

  • Siemens S7

  • Tridium

  • General Electric

  • BACnet

  • HART IP

  • Omron

  • Mitsubishi Electric

  • DNP3

  • EtherNet/IP

  • PCWorx

  • Red Lion

  • Codesys

  • IEC 60870–5–104

  • ProConO


为了主动地查找美国暴露的设备,我们需要扫描1,573,564,566个IP地址,并进行分类、进行地理定位并将它们展现到地图上。我们不可能知道工控设备的默认端口及其返回的响应。为此,最好是使用 masscan 或类似工具,通过正则表达式匹配响应。可从此处找到 nmap 正则表达式的完整列表:https://svn.nmap.org/nmap/nmap-service-probes。
检测 Niagara Fox 设备的正则表达式如下:

matchniagara-fox m|^fox a 0 -1 foxhello\n\{\nfox\.version=s:([\d.]+)\nid=i:\d+.*\napp\.name=s:Station\napp\.version=s:([\d.]+)\n|sp/Tridium Niagara/ v/$2/ i/fox version $1/ cpe:/a:tridium:niagara:$2/


检测 Allen-Bradley 管理服务器的正则表达式如下:

matchhttp m|^HTTP/1\.0 200 OK \r\nServer: A-B WWW/([\d.]+)\r\n.*<imgsrc=\”/images/rockcolor\.gif|s p/Allen-Bradley WWW httpd/ v/$1/ i/RockwellAutomation Ethernet Processor http config/


另外,为了获取更多详情,我们需要使用Nmap Scripting Engine (NSE) 脚本。他们会发送正确的 payload以便我们获取设备的规格。
主动扫描并不是隐形的,而且需要比被动收集付出更多的努力,但我认为结果应该是非常类似的。

开源工具 Kamerka

Kamerka 的第一个版本可以简单地可视化给定位置摄像头。基于此,它会展示某个企业网络块中虽然并不存在的资产但却在企业附近或内部运营的资产因此属于该企业的资产。它也可被用于通过入侵摄像头或找到无需认证的摄像头的方式实施间谍活动。我创建这个开源工具的目的是突出强调具有较高军事或商业价值的建筑物附近的互联网摄像头所存在的问题。

当然,物联网世界中并不止摄像头。因此 Kamerka 的第二个版本还涵盖了打印机、信息查询遥测协议 (MQTT)和实施流协议 (RTSP)。所有这些如保护不当,则可遭滥用。另外,很多协议如 MQTT通常被关键基础设施用作智能传感器,处理某设施的机密测量数据。
在纽约某发电厂中运行的工业物联网设备如下:


Kamerka 的最后一个版本可供用户扫描某个国家的工控设备并将包括具体详情的结果展示在地图上,其中包括某个特定 IP 地址的所有人信息。上次研究展示的是波兰和瑞士,而这次我要展示的是美国暴露的2.6万台设备。我必须把脚本缩小以便展示比平时更多的数据并将其放在 Elasticsearch 中以便更好地管理。由于展示的是所有的设备,因此地图看上去有一些模糊,不过可以根据具体的查询,针对所拥有的信息创建其它地图。

(被暴露的1.5万台设备地图)
端口5900 (Virtual Network Computing) 开放的设备:


Red Lion Controls 端口789 开放的设备:


数据统计

在我们进行地理定位和识别之前,我将展现一些统计数据。
受影响最大的组织机构是:


受影响最严重的城市是:


开放的端口:


前5大 ICS 端口:
  • 1911

  • 47808

  • 4911

  • 502

  • 44818


前5大其它端口:
  • 80

  • 443

  • 8080

  • 8443

  • 22


研究成果

如上所见,很多设备在端口80、443或8080都暴露了管理面板。远程技术人员可以在不必实际到达现场的情况下接触管理设备。然而,从安全的角度来看,这个解决方案应该增加其它措施。默认或弱密码是对工控设备或物联网设备最常见也最不负责任的做法。
开源情报同时也包括阅读文档和系统指南以获取相关运作情况以及应该使用哪些功能以获取更多信息或完整的访问权限。

已知默认凭证的完整清单见:

http://www.critifence.com/default-password-database/


有很多面板在不安全的端口80或8080运行。

 
另外,也可从登陆面板获取其它有价值的线索,其中包括站点名称、组织机构或工厂的图片,这样我们就能将结果缩小到某个具体的品牌。

 
某些设备暴露了无需认证即可发现的自身的网络配置、诊断信息、统计数据或设置。这是另外一种指标,可以帮助我们获取所运行基础设施的完整图片。

 
如果某人已经建立了对网络的访问权限并查找潜在的工控设备,那么所暴露的信息就能够起到重要作用,它包括IP地址、子网掩码、网关地址或名称服务器。在很多情况下我看到使用外部 DNS 系统,从而为多种不同的攻击敞开大门。

 
在工控设备上运行无需认证的 VNC 也并非最佳想法。这是根本不应该发生的事情,这是个明显的错误或者表明对自己的基础设施缺乏了解。从攻击者的角度来看这简直是小菜一碟——他无需验证即可获得访问权限并完全控制该设备。当然,我们不会将其称为攻陷整个设施但它肯定是一个好的开端。所有的VNC都在端口5900上以人机交互 (HMI) 的身份运行。

 
VNC 并非设备可能暴露的唯一方式;某些制造商设备上的端口80在无需验证的情况下返回 HMI。其中某些网站要求登录进行交互但它并非必需步骤。


 
你可能注意到了,判断某个建筑物或设施的连接和地理定位信息的另外一个指标是 HMI。HMI 本身披露了对设备的使用,因此很容易判断出是洗车场某个废水处理厂的设备。屏幕上显示的技术和品牌也披露出很多规格以及设备的用途。

地理定位

要仅针对关键基础设施发动攻击,我们需要排除不具备战略意义的设备。例如,管理公园喷泉的设备可能遭暴露但攻陷它并不会带来任何利益,因此对于任何人而言它都不是关键基础设施。
那么,如何找到负责关键基础设施的设备和建筑物?你可以使用生成的地图并查看目标附近的每台设备如城市或政府建筑物。第二种方法就是通过逆向工程查找设备的部件如车站名称、说明或未知。如上所述,Niagara Fox 和 BACnet 有时候会披露不该披露的信息,包括街道名称、未知或设施的名称。结合其它指标信息,我们就能找到正确的建筑物。IP地理定位也并不一定是精确的,它不会指向确切的位置但能够准确地显示出城市,而且有些时候能够显示出该设备可能位于哪条街道。
为了验证我的说法,我将列举一些案例,说明我如何通过利用所收集的信息找到对某国或某城市而言具有战略意义的建筑物。
水和废水系统行业
如上所述,水和废水系统行业也属于关键基础设施。当它们遭到破坏时,我们将无法获取饮用水从而引发企业和社会问题。
在这个案例中,Niagara Fox 设备的“station.name”字段中披露了设施的名称。

 
IP 地理定位指向佛蒙特州伯林顿的夏日街道14号 (IP geolocation points to 14 Summer Street inBurlington, Vermont),距离最近的废水工厂1.5英里。


 
有了这个信息后,下一步就是通过扫描资产和查找网络上的更多资产来准备实施物理监控和主动收集情报。
化学制品行业
当你管理很多站点时,你必须知道站点连接到何处。这个案例表明舒适是安全的大敌。该站点的位置被暴露在设备中,而且甚至不需要正确的地理定位就能获取该建筑物的位置信息。

 
“station name”包含了所在地“珍珠河” (Pearl River)、所在州“纽约” (New York) 和组织机构名称“辉瑞” (Pfizer)。

 
从他们的官方网站来看,我们获悉它是辉瑞的九大主要研发站点之一。


 
医疗行业
所有医院的设备都非常脆弱而且服务破坏可导致出诊顺序紊乱或者引发不可挽回的健康问题如死亡等。这些设施应该执行特殊的安全控制并不允许远程连接。医疗行业错误配置的一个例子是 Piedmont医院。在本案例中,确切位置遭暴露——街道、城市和所在州。

 

这是测试地理定位能力的很好的一个例子——了解设备的确切位置后我们就能查看IP地理定位是否准确。

 
在本案例中,距离目标3.5英里远——西春街 2151号 (2151 West Spring Street)。

在一些案例中,你可以从官方网站上看到建筑物的内部情况,每层楼和每个房间都一览无余,包括会议室、存储和工厂运作等。它是我们获取精确情报信息的又一个指标。你可以看出如果了解了该设施的内部情况会掌握多少有价值的信息。有人可能能够连接到该设备并实施破坏,当然这也取决于俄设备的实际用途。

 
能源行业
能源行业非常具体,因为它高度依赖于其它行业如制造业或政府设施。没有稳定的能源供应,社会和企业就无法正常运转。基于此前的网络攻击的情况来看,它是遭受攻击最多的行业之一,例如乌克兰电力网遭到攻击后导致停电数小时并可能使所有城市瘫痪。
有时候,我们无法确定IP地理定位信息,它只是指向某个国家的中心。如果不存在其它之标的,我们就无法找到它的位置信息。

 
“station name”清楚地说明了设施的名称以及设备可能具备的功能“核心”。

 
温斯顿·塞勒姆(Winston-Salem)有一家著名的发电厂,最近进行了翻新并举办了许多活动。

 
制造业/国防工业基地行业
很多国防承包商都协助处理机密材料、制造设备或以其它方式进行合作。如果他们的系统遭暴露,那么就会危害国家安全。
确定地理位置后,我们就能找到该公司的名称,从而找到某个设施。

 

地理定位指向宾夕法尼亚州的克拉克斯峰 (Clarks Summit)。最近的洛克希德·马丁 (Lockheed Martin) 公司距离11英里。

 
从官网可获得关于该具体设施及其作用的相关信息。

 
对比该研究结果和谷歌地图提供的真实视图,我们可以从官网找到这个建筑物。


我将以上提及的研究成果都告知相关组织机构,但并未收到任何回复。

总结

即使是老练的网络工程师,维护关键基础设施和工控设备的安全也并非易事,而且错误时时都在发生。当在建造基础设施时未考虑安全性,那么就会将其暴露于网络攻击和间谍活动中,尤其是当你在其中任何一个关键行业行动时。任何针对设施的网络攻击可能引发愤怒、给企业造成金钱损失甚至导致命案,我们需要认识到,这些行业相互依存而且是所有人日常生活的必需品。
我总结了为何暴露在互联网上的工控设备如此多的四种原因:
  • 某些设备是用于追踪威胁行动者的蜜罐——研究人员设置模拟工控基础设施的陷阱以查看追逐这类型设备的人员以及在侦查和攻击阶段所使用的战术、技术和程序 (TTPs)。其中一个 ICS/SCADA 蜜罐例子是 Conpot。

  • 技术人员偷懒——参与工控设备安装的技术通常允许远程连接,这样技术人员就不必在每次需要更改配置时实际到达现场。

  • 错误配置——每个人都会出错,而错误的防火墙设置可能是设备遭暴露的罪魁祸首之一。然而,追踪这些错误并及时做出反应起着重要作用。

  • 金钱——它和前一个“偷懒”的原因相关。每次技术人员到访现场都会产生支出。组织机构想要节约一切可节约的钱财,通常这个被节约的领域就是安全。

  • 很遗憾,我们无法预知所有的事情,但我们可以积极地对抗可能暴露设施或设备信息的错误信息行为。当然,当设备被暴露在互联网上时,就可能招来各种攻击,从脚本小子到有经验的脚本小子不一而足。


但我们可以采取一些防范措施:
  • 执行信息分类计划——威胁行动者实施间谍或侦查活动使用的详情是什么?这种数据应该限制访问权限且设置为无法公开获取;

  • 维护详尽的清单——持续记录环境中发生的变化并试着理解潜在的外部攻击向量;

  • 主动监控——监控外围网络安全设备并利用主动侦查技术(如端口扫描)

  • 使用开源情报收集——收集尽可能多的关于攻击者可能用于攻击基础设施的信息。地理定位数据、设备详情或个人数据对于威胁行动者而言都是有价值的信息。尝试了解任何危害设施安全的方法。


结论

本研究仅展示了可能构成关键基础设施的2.6万台设备中的5个设备案例。这些设施提供的设备或服务确保国家的持续性并发挥着重要的社会作用。在商业行业的情况下,企业有责任确保自身网络的安全,但对于关键基础设施而言,保护它的安全事关公众利益。
利用情报收集方法可以特别关注所在国的关键基础设施,了解威胁行动者可能会收集哪些信息。另外,本文所展示的方法可用于收集对手网络潜力和能力数据以及关键基础设施的战略位置。
参考资料及补充资料

https://www.cia.gov/news-information/featured-story-archive/2010-featured-story-archive/open-source-intelligence.html


https://www.dhs.gov/cisa/critical-infrastructure-sectors


https://www.boozallen.com/content/dam/boozallen/documents/2016/09/ukraine-report-when-the-lights-went-out.pdf


https://dragos.com/wp-content/uploads/CrashOverride-01.pdf


https://ics.sans.org/media/E-ISAC_SANS_Ukraine_DUC_5.pdf


Kamerka 地址:
https://github.com/woj-ciech/kamerka



原文链接
https://www.icscybersecurityconference.com/intelligence-gathering-on-u-s-critical-infrastructure/


题图:Pixabay License



本文由奇安信代码卫士编译,不代表奇安信观点,转载请注明“转自奇安信代码卫士 www.codesafe.cn”



奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存